1. Field of the Invention
The present invention generally relates to graphical display systems and, in particular, to a system and method for rendering graphical data.
2. Related Art
Graphical display systems are commonly used for displaying graphical representations of two-dimensional and/or three-dimensional objects on a two-dimensional display device, such as a cathode ray tube, for example. In this regard, a graphical display system normally includes one or more graphics applications having graphical data that defines one or more graphical objects. When a graphical object is to be displayed, the graphics application submits a command or a set of commands, referred to here after as a xe2x80x9cdrawing command,xe2x80x9d for drawing the object. The drawing command includes or is associated with graphical data that defines the color value and possibly other attributes for each pixel of the object.
In response to the drawing command, a graphical pipeline within the graphical display system renders the command""s graphical data to a frame buffer. The data within the frame buffer defines the display attributes (e.g., color) for each pixel of a display device, which periodically reads the frame buffer and colors each pixel displayed by the display device according to each pixel""s corresponding color value in the frame buffer. Moreover, by rendering the graphical data of the drawing command to the frame buffer, the image displayed by the output device is eventually updated to include an image of the object defined by the graphical data of the drawing command.
To provide more detailed and/or higher quality images, it may be desirable to add objects to the scenes defined by the graphics applications and/or to increase the amount of graphical data utilized to define the objects of the graphics applications. However, increasing the graphical data of a graphics application can adversely affect the running performance of the application. To help reduce the impact of such adverse effects, it is generally desirable to run the graphics applications on graphical display systems that exhibit higher rendering speeds.
Unfortunately, graphical display systems capable of rendering graphical data at higher speeds are typically more complex and more expensive than graphical display systems that render at slower speeds. Thus, a trade-off between cost and performance (e.g., rendering speed) often exists in selecting a graphical display system for running a particular application.
Furthermore, the running performance of a graphics application can be affected by factors other than the rendering performance of the graphical display system. For example, the application""s mode of operation can have a significant bearing on the application""s running performance.
In this regard, graphics applications generally operate in one of two possible modes of operation: display list mode and immediate mode. In display list mode, the graphical data of each object rendered by a pipeline of a graphical display system is saved within the pipeline""s memory, and each saved object is contained within a display list. To render a graphical object contained in a pipeline""s display list, the graphics application passes, to the pipeline, a command that identifies the display list instead of a command that includes the graphical data defining the object. In response to this command, the pipeline retrieves the object""s graphical data from the pipeline""s memory and renders the retrieved graphical data.
It generally takes less time for the pipeline to retrieve and render graphical data from its own memory than it takes for the same graphical data to be transmitted to the pipeline from the graphics application and rendered by the pipeline. Thus, as the graphical data of more objects is stored in the pipeline""s memory, the efficiency of the pipeline generally improves, thereby improving the running performance of the graphics application.
However, some graphics applications operate in the immediate mode rather than the display list mode. In the immediate mode, the graphics application provides the pipeline with an object""s graphical data each time the object is to be rendered regardless of whether or not the object has been previously rendered by the pipeline. Thus, less efficiency gains from reexecuting the same graphics commands are generally realized for graphics applications operating in the immediate mode.
The present invention generally pertains to a system and method for rendering graphical data from a graphics application.
A system in accordance with one embodiment of the present invention utilizes a plurality of frame buffers, a plurality of graphics pipelines, and logic. Each of the graphics pipelines is configured to render graphical data to a different one of the frame buffers. The logic is configured to determine a mode of operation of the graphics application and to prevent, based on the mode of operation of the graphics application, at least one of the graphics pipelines from rendering the graphical data from the graphics application.
The present invention can also be viewed as providing a method for rendering graphical data from graphics applications. The method can be broadly conceptualized by the following steps: receiving a graphics command from a graphics application; rendering, via a first graphics pipeline, graphical data from the graphics command to one of a plurality of frame buffers; identifying a mode of operation of the graphics application; causing the graphics command to bypass a second graphics pipeline based on the identifying step.